# logger.py (日志模块)
import logging
from logging.handlers import RotatingFileHandler
import os


def configure_logger(log_path):
    # 获取日志目录路径
    log_dir = os.path.dirname(log_path)

    # 自动创建目录（递归创建，且忽略已存在的情况）
    if not os.path.exists(log_dir):
        os.makedirs(log_dir, exist_ok=True)

    logger = logging.getLogger()
    logger.setLevel(logging.INFO)

    formatter = logging.Formatter(
        "%(asctime)s - %(name)s - %(levelname)s - %(message)s"
    )

    # 文件日志（自动轮转）
    file_handler = RotatingFileHandler(
        log_path, encoding='utf-8', maxBytes=10 * 1024 * 1024, backupCount=5
    )
    file_handler.setFormatter(formatter)

    # 控制台日志
    console_handler = logging.StreamHandler()
    console_handler.setFormatter(formatter)

    logger.addHandler(file_handler)
    logger.addHandler(console_handler)
    return logger